package com.ly.base.chapter03;

import java.util.concurrent.ThreadLocalRandom;
import java.util.stream.IntStream;

/**
 * 生成流
 */
public class AFGenerateDemo {
    public static void main(String[] args) {
        /**
         * 1、 IntStream.range     包头 不包尾
         *     IntStream.rangeClose  包头 包尾
         */
//        IntStream.range(2,7).forEach(System.out::println);
//        IntStream.rangeClosed(1,4).forEach(System.out::println);

        /**
         * 2、IntStream.iterate   生成1，3，5，7，9.....奇数序列
         *
         * 二参（初始值，生成规则（依据上一个值））
         * 三参(初始值，限制规则（终止规则），生成规则（依据上一个值）)
         */
//        IntStream.iterate(1,t ->t+2).limit(10).forEach(System.out::println);
//        IntStream.iterate(1,t -> t < 10,t->t+2).forEach(System.out::println);

        /**
         * 3、IntStream.generate    不依赖任何参数生成
         */
        IntStream.generate(() -> ThreadLocalRandom.current().nextInt(100)).limit(5).forEach(System.out::println);
        System.out.println("======================");
        ThreadLocalRandom.current().ints(5,0,50).forEach(System.out::println);

    }

}
